# 随机抽样，是统计学中常用的一种方法，它可以帮助我们从大量的数据中快速地构建出一组数据分析模型

# n	表示要抽取的行数。
# frac	表示抽取的比例，比如 frac=0.5，代表抽取总体数据的50%。
# replace	布尔值参数，表示是否以有放回抽样的方式进行选择，默认为 False，取出数据后不再放回。
# weights	可选参数，代表每个样本的权重值，参数值是字符串或者数组。
# random_state	可选参数，控制随机状态，默认为 None，表示随机数据不会重复；若为 1 表示会取得重复数据。
# axis	表示在哪个方向上抽取数据(axis=1 表示列/axis=0 表示行)。

import pandas as pd

dict = {'name': ["Jack", "Tom", "Helen", "John"], 'age': [28, 39, 34, 36], 'score': [98, 92, 91, 89]}
info = pd.DataFrame(dict)
print(info)
#     name  age  score
# 0   Jack   28     98
# 1    Tom   39     92
# 2  Helen   34     91
# 3   John   36     89
print(info.sample(n=2))
#     name  age  score
# 1    Tom   39     92
# 2  Helen   34     91
print(info.sample(n=2, axis=1))
#     name  score
# 0   Jack     98
# 1    Tom     92
# 2  Helen     91
# 3   John     89

info2 = pd.DataFrame({'data1': [2, 6, 8, 0], 'data2': [2, 5, 0, 8], 'data3': [12, 2, 1, 8]}, index=['John', 'Parker', 'Smith', 'William'])
# 随机抽取3个数据
info2['data1'].sample(n=3)
# 总体的50%
info2.sample(frac=0.5, replace=True)
# data3序列为权重值，并且允许重复数据出现
info2.sample(n=2, weights='data3', random_state=1)
